Conversation
e28c2c5 to
5a80e52
Compare
5a80e52 to
2b519f2
Compare
| @@ -0,0 +1 @@ | |||
| Cargo.lock No newline at end of file | |||
There was a problem hiding this comment.
this is just some housekeeping I ran into
7c00333 to
cccc3d5
Compare
Merging this PR will degrade performance by 33.09%
Performance Changes
Comparing Footnotes
|
215fcde to
ab32105
Compare
🚨🚨🚨❌❌❌ SQL BENCHMARK FAILED ❌❌❌🚨🚨🚨Benchmark |
🚨🚨🚨❌❌❌ SQL BENCHMARK FAILED ❌❌❌🚨🚨🚨Benchmark |
Benchmarks: TPC-H SF=1 on NVMESummary
Detailed Results Table
|
Benchmarks: FineWeb NVMeSummary
Detailed Results Table
|
Benchmarks: TPC-DS SF=1 on NVMESummary
Detailed Results Table
|
Benchmarks: FineWeb S3Summary
Detailed Results Table
|
Benchmarks: TPC-H SF=10 on NVMESummary
Detailed Results Table
|
Benchmarks: TPC-H SF=10 on S3Summary
Detailed Results Table
|
Benchmarks: TPC-H SF=1 on S3Summary
Detailed Results Table
|
ab32105 to
32d8be0
Compare
Benchmarks: Statistical and Population GeneticsSummary
Detailed Results Table
|
Benchmarks: Clickbench on NVMESummary
Detailed Results Table
|
32d8be0 to
7dfab2b
Compare
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
dcc1c02 to
a56d1ea
Compare
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
a56d1ea to
cfff979
Compare
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
The tests are failing due to a bug in the `url` crate, I had a fix as part of #6187 but it's taking longer than expected to get it in, so figured I'll just take it out. Signed-off-by: Adam Gutglick <adam@spiraldb.com>
| type Item = (MetricId, &'a Metric); | ||
| /// Default metrics registry, stores all state in-memory. | ||
| #[derive(Default, Clone)] | ||
| pub struct DefaultMetricsRegistry { |
There was a problem hiding this comment.
Debating whether we want a RwLock or Mutex here
robert3005
left a comment
There was a problem hiding this comment.
I made couple small comments. The thing that I am not convinced by is double arcing. But I can see how it ends up being necessary
| #![allow(clippy::expect_used)] | ||
| #![allow(clippy::unwrap_in_result)] |
| #![allow(clippy::expect_used)] | ||
| #![allow(clippy::unwrap_in_result)] |
|
|
||
| /// Sets the gauge to a specific value. | ||
| pub fn set(&self, value: f64) { | ||
| _ = self.0.swap(value.to_bits(), Ordering::AcqRel); |
Closes #6078.
This PR reworks our metrics crate to simplify it and makes it much harder to make it use unbounded amounts of memory. The implementation is inspired by our current use of
witchcraft-metrics, themetricscrate, DataFusion's metrics and some reading of the OTel spec.It includes several changes:
VortexMetricsis replaced by the newMetricsRegistrytrait, which allows user to integrate metrics to whatever metrics backend they have.witchcraft-metricsdependency. It does many things we don't care about or that are opinionated in a way that I don't think is intuitive or useful for most users. It also makes our external API less dependent on other crates we have no control over.Duration, and counters are u64s. It also introduces aGaugetype which I don't think we actually use and I might just delete.I've tested it by running our DF benchmarks with
--show-metricsand that seems to not change, if anyone else has made use of the metrics, I would love to help test and debug them in another context.